1. The Field of the Invention
The present invention relates generally to data transmission systems and components. More particularly, embodiments of the present invention relate to discovering diagnostic port functionality in a distributed system.
2. Background and Relevant Art
Computer and data communications networks continue to proliferate due to declining costs, increasing performance of computer and networking equipment, and increasing demand for communication bandwidth. Communications networks—including wide area networks (“WANs”), local area networks (“LANs”), and storage area networks (“SANs”)—allow increased productivity and utilization of distributed computers or stations through the sharing of resources, the transfer of voice and data, and the processing of voice, data and related information at the most efficient locations. Moreover, as organizations have recognized the economic benefits of using communications networks, network applications such as electronic mail, voice and data transfer, host access, and shared and distributed databases are increasingly used as a means to increase user productivity. This increased demand, together with the growing number of distributed computing resources, has resulted in a rapid expansion of the number of installed networks.
As the demand for networks has grown, network technology has developed to the point that many different physical configurations presently exist. Examples include Gigabit Ethernet (“GE”), 10 GE, Fiber Distributed Data Interface (“FDDI”), Fibre Channel (“FC”), Synchronous Optical Network (“SONET”) and InfiniBand networks. These networks, and others, typically conform to one of a variety of established standards, or protocols, which set forth rules that govern network access as well as communications between and among the network resources. Typically, such networks utilize different cabling systems, have different characteristic bandwidths and typically transmit data at different speeds. Network bandwidth, in particular, has been the driving consideration behind many advancements in the area of high speed communication systems, methods and devices.
For example, the ever-increasing demand for network bandwidth has resulted in the development of technology that increases the amount of data that can be pushed through a single channel on a network. Advancements in modulation techniques, coding algorithms and error correction have vastly increased the rates at which data can be transmitted across networks. For example, a few years ago, the highest rate that data could travel across a network was at about one Gigabit per second. This rate has increased to the point where data can travel across Ethernet and SONET networks at rates as high as 10 gigabits per second, or faster.
As communication networks have increased in size, speed and complexity however, they have become increasingly likely to develop a variety of problems that, in practice, have proven difficult to diagnose and resolve. Such problems are of particular concern in light of the continuing demand for high levels of network operational reliability and for increased network capacity.
The problems generally experienced in network communications can take a variety of forms and may occur as a result of a variety of different circumstances. Examples of circumstances, conditions and events that may give rise to network communication problems include the transmission of unnecessarily small frames of information, inefficient or incorrect routing of information, improper network configuration and superfluous network traffic, to name just a few. Such problems are aggravated by the fact that networks are continually changing and evolving due to growth, reconfiguration and introduction of new network topologies and protocols. Moreover, new network interconnection devices and software applications are constantly being introduced and implemented. Circumstances such as these highlight the need for effective, reliable, and flexible diagnostic mechanisms.
Consequently, as high speed data communications systems, processes and devices mature, many designs have increasingly focused on reliability and performance issues. Accordingly, a number of diagnostic devices and tests can be utilized to aid a network administrator in both identifying existing network conditions that are causing a network to deviate from expected performance and proactively identifying network conditions that may cause a network to deviate from expected performance in the future.
One device that is used to identifying network conditions is a protocol analyzer, also called a network analyzer. Generally, a protocol analyzer runs in the background of a network, capturing, examining and logging packet traffic. Protocol analyzers can, for example, be configured to watch for unusual IP addresses, time stamps and data packets, and most have a user interface for enabling the network administrator to have access to information representing the analysis performed by the protocol analyzers. Protocol analyzers are thus a fundamental and highly useful tool for testing and debugging various types of communications networks, including computing and computer storage networks.
A protocol analyzer operates by capturing selected portions of data from a data stream that is transmitted via the communications network. The captured information may then be analyzed in greater detail by the protocol analyzer to extract desired information. For example, data transmission faults or errors, or performance errors, known generally as problem conditions, may be diagnosed by examining the captured data that is related to the problem.
Another device that is used to identify network conditions is a generator. Generally, generators generate network traffic to simulate various network conditions. For example, a generator can generate network traffic that simulates a data stream between two nodes on a network. The behavior of the two nodes, as well as other nodes of the network, can be evaluated to determine how the network responds to the simulated data stream. Thus, a network administrator may be able to identify performance deviations and take appropriate measures to prevent the performance deviations from occurring in the future.
Another device that is used to identify network conditions is a bit error rate tester. Generally, bit error rate testers operate by transmitting a predetermined bit sequence onto the data transmission path, and then analyze the predetermined bit sequence when it returns to the bit error rate tester. Typically, such analyses involve comparing the received bit sequence to a copy of the bit sequence that was initially transmitted onto the data transmission path. This comparison permits errors within the sequence to be identified and counted. After the errors in the bit sequence are counted, that information is used to calculate an overall bit error rate. If the bit error rate is too high, the data transmission path and its physical layer should be inspected. Some protocol's specifications expect the bit error rate to be less than a specific value.
Another device that is used to identify network conditions is a jammer. Generally, jammers provide the ability to selectively alter channel data, including the introduction of errors into channel data paths. Thus, jammers permit monitoring of the response of the communications system to the altered data, and help determine whether the communications system is capable of responding without experiencing adverse effects in performance such as loss of data or network traffic interruption. For example, a network system designer can perform any one of a number of different diagnostic tests to make determinations such as whether a system responded appropriately to incomplete, misplaced or missing tasks or sequences, how misdirected or confusing frames are treated, and how misplaced ordered sets are treated.
Protocol analyzers, generators, bit error rate testers, and jammers (and possibly other devices that test for network conditions) can be implemented on printed circuit boards (often referred to as “cards” or “blades”) that are inserted into a computer system test chassis. Depending on the desired functionality, an administrator can insert a particular type of card into a computer system test chassis. For example, when an administrator desires to test a bit error rate for a network, the administrator can insert a bit error rate tester card into a computer system test chassis. Subsequently, when the administrator desires to analyze network traffic, the administrator can remove the bit error rate test card from the computer system test chassis and insert a network analyzer card into the computer system test chassis.
Some computer system test chassis even include multiple card receptacles such that the computer system test chassis can receive a number of cards. Thus, an administrator may have some flexibility to simultaneously test a network for a variety of network conditions. For example, an administrator may include a generator card and a jammer card in a multi-receptacle computer system test chassis to simultaneously utilize both generator and jammer functionality. Unfortunately, as a network expands and/or is reconfigured, the requirements for testing the network can change. Expansion and/or reconfiguration of a network can result in an administrator having to, at least from time-to-time, reconfiguring the network testing functionality for a network.
Since testing functionality can be spread access different sub-nets (e.g., separate by routers) an administrator may be required to have a client program on each sub-net to access circuit boards that implement testing functionality within each sub-net. This can be time consuming as different sub-nets may be located in different geographic locations (possible separated large distances) and an administrator may be required to access the client program to identifying current testing functionality. Further, if the testing functionality on a multi-receptacle computer system test chassis changes on a remote sub-net (due to user reconfiguration), it may be difficult for an administrator to even become aware that testing functionality has changed. Therefore systems, methods, and computer program products for discovering diagnostic port functionality in a distributed system would be advantageous.